#ifndef TCP_HANDLER_H
#define TCP_HANDLER_H

#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
#include <stdlib.h>
#include <sys/select.h>
#include <sys/time.h>
#include <pthread.h>

#define TCP_SER_IP          "192.168.70.128"        // 服务器 IP
#define TCP_SER_PORT        9001                    // 服务器 port

#define TCP_CLI_IP          "192.168.70.1"          // 客户端 IP
#define TCP_CLI_PORT        9002                    // 客户端 port



#define MAX_CLIENTS 10                              // 最大客户端数量
#define BUF_SIZE    1024                            // 接收的数据大小

// 定义一个有参宏，出错就会打印错误信息
#define ERROR(x) do{ \
 perror(x); \
 printf("%s-%s-%d\n", __FILE__, __func__, __LINE__); \
}while(0)





typedef struct
{
    int actfd;                          // 与客户端通信的套接字
    struct sockaddr_in client_addr;     // 客户端的地址信息
}MSG;

// 客户端信息结构体（单片机）
typedef struct {
    int socket;                         // 客户端套接字
    struct sockaddr_in address;         // 存储单片机IP和端口
    pthread_t tid;                      // 线程号
    int active;                         // 活跃状态
} Client;


// 获取服务器套接字
int create_server(const char *ip, unsigned short port);

// 获取客户端套接字
int create_client(const char *ip, unsigned short port);

#endif